﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HA.Data.DisplayOptions2
{
    [Serializable ]
   public abstract  class EventProperty:DataChangeProperty 
    {

       //不使用下述定义的事件模型的类不需要继承此类  例如单独走事件的等值线类 DOContour

       //抽象基类   需要使用该类定义的事件类型的类继承此类
     



       // //标志该类中的需要走下列事件的相关的 字段属性 例如：string，List<double> 是否发生了改变  不包括组合的类的实例（对象）（例如：DOGrid3dData下的 DOModFlow数据）的数据状态
        //一个类的数据是否需要更新由两个状态决定：1，类的下列字段isNeedUpdateData  2，类中的组合的类的实例（对象）的数据是否需要更新的状态
       //[field: NonSerialized]
       // protected bool isNeedUpdateData = false;

       //public bool IsNeedUpdateData
       //{
       //    get { return isNeedUpdateData; }
       //    set { isNeedUpdateData = value; }
       //}

       //public virtual void SetIsNeedUpdateDataToFalse()
       //{
       //    isNeedUpdateData = false;
       
       //}


        [field: NonSerialized]
        public   event EventHandler<DisplayOptionsChangedEventArgs> DisplayOptionsChanged;

        protected   void AskDisplayOptionChanged(DisplayOptionsChangedEventArgs e)
        {
            if (DisplayOptionsChanged != null)
            {
                DisplayOptionsChanged(this, e);
            }
        }





        #region 数据的可见性  可以简单理解为界面上选项卡的可见性

        protected bool _isShowTab = true;
        /// <summary>
        /// 标记数据是否可见  （表现到界面上就是 选项卡的可见性）
        /// </summary>
        public bool IsShowTab
        {
            get { return _isShowTab; }
            //set { _isShowTab = value; }
        }

       /// <summary>
       /// 添加数据 更新可见性
       /// </summary>
       /// <param name="isVisible"></param>
        public virtual  void ProjAddDataVisibleChanged(bool isVisible)
        {
            this._isShowTab = isVisible;
        }
       /// <summary>
       /// 删除数据  更新可见性
       /// </summary>
       /// <param name="isVisible"></param>
        public virtual void ProjDeleteDataVisibleChanged(bool isVisible)
        {
            this._isShowTab = isVisible;
        }

        #endregion

    }
}
